home *** CD-ROM | disk | FTP | other *** search
Wrap
VERSION 4.00 Begin VB.Form Form1 BorderStyle = 3 'Fixed Dialog Caption = "CD-ROM DETECTION" ClientHeight = 480 ClientLeft = 2070 ClientTop = 3180 ClientWidth = 5115 Height = 885 Left = 2010 LinkTopic = "Form1" MaxButton = 0 'False MinButton = 0 'False ScaleHeight = 480 ScaleWidth = 5115 ShowInTaskbar = 0 'False Top = 2835 Width = 5235 Begin VB.Label Label1 Alignment = 2 'Center Height = 255 Left = 0 TabIndex = 0 Top = 120 Width = 5055 End Attribute VB_Name = "Form1" Attribute VB_Creatable = False Attribute VB_Exposed = False Option Explicit Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long Private Const DRIVE_REMOVABLE = 2 Private Const DRIVE_FIXED = 3 Private Const DRIVE_REMOTE = 4 Private Const DRIVE_CDROM = 5 Private Const DRIVE_RAMDISK = 6 Function StripNulls(startStrg$) As String 'Take a string separated by Chr$(0)'s, and split off 1 item, and 'shorten the string so that the next item is ready for removal. Dim c%, item$ c% = 1 If Mid$(startStrg$, c%, 1) = Chr$(0) Then item$ = Mid$(startStrg$, 1, c% - 1) startStrg$ = Mid$(startStrg$, c% + 1, Len(startStrg$)) StripNulls$ = item$ Exit Function End If c% = c% + 1 Loop End Function Private Sub Form_Load() '**************************************************** 'This file was corrected and passed trought: 'K.Driblinov page... tons of C & Vb sources, links to other prg sites!! 'http://www.geocities.com/SiliconValley/Lakes/7057 'E-Mail: kdriblinov@hotmail.com '**************************************************** Dim r&, allDrives$, JustOneDrive$, pos%, DriveType& Dim CDfound As Integer 'pad the string with spaces allDrives$ = Space$(64) 'call the API to get the string containing all drives r& = GetLogicalDriveStrings(Len(allDrives$), allDrives$) 'trim off trailing chr$(0)'s. AllDrives$ 'now contains all the drive letters. allDrives$ = Left$(allDrives$, r&) 'begin a loop Do 'find the first separating chr$(0) pos% = InStr(allDrives$, Chr$(0)) 'if there's one, then... If pos% Then 'extract the drive up to the chr$(0) JustOneDrive$ = Left$(allDrives$, pos%) 'and remove that from the Alldrives string, 'so it won't be checked again allDrives$ = Mid$(allDrives$, pos% + 1, Len(allDrives$)) 'with the one drive, call the API to 'determine the drive type DriveType& = GetDriveType(JustOneDrive$) 'check if it's what we want If DriveType& = DRIVE_CDROM Then 'got it (or at least the first one, 'anyway, if more than one), so set 'the found flag... CDfound% = True 'we're done, so get out Exit Do End If End If Loop Until allDrives$ = "" Or DriveType& = DRIVE_CDROM 'display the appropriate message If CDfound% Then label1 = "The CD-ROM drive on your system is drive " & UCase$(JustOneDrive$) Else: label1 = "No CD-ROM drives were detected on your system." End If End Sub